/*****************************************************
Copyright (C) 2020. All rights reserved.
File name     ：BinomialQueue.h
Version       ：v1.0
Author        ：zhengqijun
Date          ：2020-04-08
Function List ：
Description   ：Binomial Queue
******************************************************/

#ifndef BINOMIALQUEUE_H_
#define BINOMIALQUEUE_H_

// Type Definition
struct BinNode;
struct Collection;
typedef int ElementType;
typedef struct BinNode *BinTree;
typedef struct Collection *BinQueue;

// Function Lists
BinQueue Initialize(void);
void Destroy(BinQueue H);
BinQueue MakeEmpty(BinQueue H);
BinQueue Insert(ElementType Item, BinQueue H);
ElementType DeleteMin(BinQueue H);
BinQueue Merge(BinQueue H1, BinQueue H2);
ElementType FindMin(BinQueue H);
int IsEmpty(BinQueue H);
int IsFull(BinQueue H);

// PrintBinomialQueue for testing
void PrintBinQueue(BinQueue H, int depth);

#endif  /* BINOMIALQUEUE_H_ */

// EOF

